<html>
<head>
    <style>
        input { display: none; }
    </style>
    <script>
        function log(msg) {
            document.getElementById('log').appendChild(document.createTextNode(msg + '\n'));
        }

        function logTabIndex(elem) {
            log('getAttribute("tabindex") = ' + elem.getAttribute('tabindex') + '; tabIndex = ' + elem.tabIndex);
        }

        function test() {
            if (window.testRunner) {
                testRunner.dumpAsText();
            }

            log('Testing input elements in the page');

            var inputs = document.getElementsByTagName('input');
            for (var i = 0; i < inputs.length; ++i) {
                logTabIndex(inputs[i]);
            }

            var indices = [3147483648, 2147483648, 2147483647, 2147483646, 0, -1, -2147483647, -2147483648, -3147483648, "", "foo"];

            log('Testing setAttribute on an anchor element made with document.createElement');

            var elem = document.createElement('a');
            for (var i = 0; i < indices.length; ++i) {
                elem.setAttribute('tabindex', indices[i]);
                logTabIndex(elem);
            }

            log('Testing tabIndex on an area element made with document.createElement');

            var elem = document.createElement('area');
            for (var i = 0; i < indices.length; ++i) {
                elem.tabIndex = indices[i];
                logTabIndex(elem);
            }
        }
    </script>
</head>
<body onload="test()">
    <p>This page tests that the <tt>tabindex</tt> attribute is accepted for
    values between -2147483648 and 2147483647. Values outside of this range will
    make the tabIndex reflected value zero.</p>

    <input tabindex="3147483648">
    <input tabindex="2147483648">
    <input tabindex="2147483647">
    <input tabindex="2147483646">
    <input tabindex="0">
    <input tabindex="-1">
    <input tabindex="-2147483647">
    <input tabindex="-2147483648">
    <input tabindex="-2147483649">
    <input tabindex="-3147483648">

    <pre id="log"></pre>
</body>
</html>
